package com.java.yz.day09.ketang;

/*
    String类概述
        字符串是由多个字符组成的一串数据(字符序列)
        字符串可以看成是字符数组
        一旦被创建就不可以更改（指的是字符串常量中的值本身不能改变）

    构造方法
        public String()
        public String(byte[] bytes)
        public String(byte[] bytes,int offset,int length)
        public String(char[] value)
        public String(char[] value,int offset,int count)
        public String(String original)
 */
public class StringDemo1 {
    public static void main(String[] args) {
        String a = "la";//这是创建字符串的方式

        //public String()使用无参构造方法创建一个String类对象
        String s1 = new String();
        System.out.println(s1);//这种方式就相当于创建了一个空的字符串

        //public String(byte[] bytes) 将字节数组转换成字符串
        byte[] bytes = {101, 102, 103};
        String s2 = new String(bytes);  //相当于把数组里面的数值的ASCII码值转换成对应的字符
        System.out.println(s2);  //efg

        //public String(byte[] bytes,int offset,int length) offset偏移量的意思-->index
        //将字节数组的一部分转换成字符串
        String s3 = new String(bytes, 1, 2);  //fg  从下标1开始的后面两个
        System.out.println(s3);

        //public String(char[] value)
        char[] chars = {'a', 'b', 'c'};
        String s4 = new String(chars);
        System.out.println(s4); //abc 这样就转换成了一个字符串

        //public String(char[] value,int offset,int count)
        //将字符数组的一部分转换成字符串
        char[] chars1 = {'顾', '文', '则', '学', '西'};
        String s5 = new String(chars1, 1, 3);//从下标1开始的后面三个
        System.out.println(s5);

        //public String(String original)
        //将字符串转换成字符串
        String s6 = new String("你好"); //刚开始没有时就会在常量池中创建一个空间存放内容
        String s7 = "你好";
        System.out.println(s6==s7); //false,比较的是地址值
        System.out.println(s6.equals(s7)); //true,比较内容


    }
}
